//
//  Extension+NSDate.swift
//  WeiBo
//
//  Created by 韩菲菲 on 16/8/15.
//  Copyright © 2016年 韩菲菲. All rights reserved.
//

import UIKit

private let deleteCacheTime: Double = -30*60

//创建全局属性 防止重复创建销毁  这两个对象特别影响性能
private let formatter = NSDateFormatter()

//创建日历对象
let calendar = NSCalendar.currentCalendar()

//用来处理微博服务器返回来的时间格式
extension NSDate{
    
    
    class func deleteSinaTime() -> String{
    
        let date = NSDate().dateByAddingTimeInterval(deleteCacheTime)
        
        //2016-08-22 22:22:49
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        formatter.locale = NSLocale(localeIdentifier: "en_US")
        
        let timeStr = formatter.stringFromDate(date)
        
        
        return timeStr
    
    }
    
    
    
    
    
    class func getSinaDateWithString(created_at: String) -> NSDate {
        
        //设置格式化格式
        formatter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        //本地化
        formatter.locale = NSLocale(localeIdentifier: "en_US");
        
        //微博时间
        let sinaDate = formatter.dateFromString(created_at)!
        
        return sinaDate
        
    }
    
    //处理服务器返回来的时间格式 “Mon Aug 15 13:38:44 +0800 2016”
    var handleSinaTimeStr:String{
        
        //调用方法判断是不是今年
        let isThisYear = sinaIsThisYear(self)
        
        //判断
        if isThisYear{
            //是今年
            
            //判断是不是今天
            if calendar.isDateInToday(self){
                //是今天
                //求差值
                let s = Int(NSDate().timeIntervalSinceDate(self))
                
                //如果小于60 显示 刚刚
                if s < 60 {
                    return "刚刚"
                }else if s >= 60 && s < 3600{
                    
                    //如果大于等于60 && 小于3600  显示 xx分钟前
                    return "\(s/60)分钟前"
                }else{
                    //- 其他   显示  xx小时前
                    return "\(s/3600)小时前"
                }
                
            }else if calendar.isDateInYesterday(self)
            {
                //昨天 2016年08月14日 20:20:20  显示   昨天 20:20
                formatter.dateFormat = "昨天 HH:mm"
            }else
            {
                //不是昨天 2016年06月14日 20:20:20  显示    06月14日 20:20
                formatter.dateFormat = "MM月dd日 HH:mm"
            }
            
        }else{
            //不是今年
            //重新设置dataformatter格式
            //2014年06月14日 20:20
            formatter.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        
        return formatter.stringFromDate(self)
    }
    
    //提供个方法 判断是不是今年
    func sinaIsThisYear(sinaDate: NSDate) -> Bool{
        
        //设置格式
        formatter.dateFormat = "yyyy"
        
        //取出sina时间里面的年
        let sinaStr = formatter.stringFromDate(sinaDate)
        
        //取出今年的年
        let thisYearStr = formatter.stringFromDate(NSDate())
        
        //判断两个字符串是不是相等
        //如果相等  就说明是今年 如果不相等 说明不是今年
        return sinaStr == thisYearStr
        
    }
   
    
}
